//package com.example.androidexample.listview;
//
//import android.content.Context;
//import android.os.Bundle;
//import android.os.Handler;
//import android.util.Log;
//import android.util.SparseArray;
//import android.view.LayoutInflater;
//import android.view.View;
//import android.view.ViewGroup;
//import android.widget.AdapterView;
//import android.widget.BaseAdapter;
//import android.widget.ImageView;
//import android.widget.TextView;
//
//import androidx.annotation.Nullable;
//
//import com.example.androidexample.R;
//import com.example.basic.base.BaseActivity;
//
//import java.util.ArrayList;
//import java.util.List;
//
//public class ListViewActivity extends BaseActivity {
//
//    private RefreshListView listView;
//    private MyAdapter adapter1;
//    private ArrayList<Enety> eneties;
//
//    @Override
//    protected void initOnCreate(@Nullable Bundle savedInstanceState) {
//        listView = findViewById(R.id.refreshlist);
//        eneties = new ArrayList<>();
//        for (int i = 0;i< 100 ; i++) {
//            Enety enety = new Enety("这是标题"+i,R.mipmap.ic_launcher);
//            eneties.add(enety);
//        }
//        adapter1 = new MyAdapter(this,eneties,R.layout.refresh_listview_item);
//        listView.setAdapter(adapter1);
//        listView.setOnRefreshListener(new RefreshListView.OnRefreshListener() {
//            @Override
//            public void onRefresh() {
//                new Handler().postDelayed(new Runnable() {
//                    @Override
//                    public void run() {
//                        Enety enety = new Enety("下拉新增数据",R.mipmap.ic_launcher);
//                        eneties.add(0,enety);
//                        adapter1.notifyDataSetChanged();
//                        listView.onRefreshComplete(true);
//                    }
//                },3000);
//
//
//            }
//
//            @Override
//            public void onLoadMore() {
//                new Handler().postDelayed(new Runnable() {
//                    @Override
//                    public void run() {
//                        Enety enety = new Enety("上拉加载数据",R.mipmap.ic_launcher);
//                        eneties.add(enety);
//                        adapter1.notifyDataSetChanged();
//                        listView.onRefreshComplete(true);
//                    }
//                },500);
//            }
//        });
//
//        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
//            @Override
//            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//                Log.e("Say1","position = " + position);
//            }
//        });
//
//        listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
//            @Override
//            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
//                Log.e("Say1","onItemLongClick position = " + position);
//                return true;
//            }
//        });
//    }
//
//    @Override
//    protected int setLayoutXmlid() {
//        return R.layout.activity_component_listview;
//    }
//
//    @Override
//    public String getTag() {
//        return "ListViewActivity";
//    }
//
//    static class ListViewHolder {
//
//        private SparseArray<View> mViews;
//        private int mPosition;
//        private View mConvertView;
//        private Context context;
//
//        public ListViewHolder(Context context, ViewGroup parent, int position, int layoutId) {
//            this.mPosition = position;
//            this.context = context;
//            this.mViews = new SparseArray<View>();
//            mConvertView = LayoutInflater.from(context).inflate(layoutId, parent, false);
//            mConvertView.setTag(this);
//
//        }
//
//        public static ListViewHolder get(Context context, View convertView,
//                                         ViewGroup parent, int position, int layoutId) {
//
//            if (convertView == null) {
//                return new ListViewHolder(context, parent, position, layoutId);
//            } else {
//                ListViewHolder holder = (ListViewHolder) convertView.getTag();
//                return holder;
//            }
//        }
//
//        /**
//         * 通过viewId获取控件
//         */
//        public <T extends View> T getView(int viewId) {
//
//            View view = mViews.get(viewId);
//
//            if (view == null) {
//                view = mConvertView.findViewById(viewId);
//                mViews.put(viewId, view);
//            }
//
//            return (T) view;
//
//        }
//
//        public View getConvertView() {
//            return mConvertView;
//        }
//
//        /**
//         * 封装setText方法，设置TextView的值
//         */
//        public ListViewHolder setTextViewVualue(int viewId, String text) {
//            TextView tv = getView(viewId);
//            tv.setText(text);
//            return this;
//        }
//
//        /**
//         * 封装setText方法，设置TextView的值
//         */
//        public ListViewHolder setImageViewVualue(int viewId, int id) {
//            ImageView iv = getView(viewId);
//            iv.setImageDrawable(context.getResources().getDrawable(id));
//            return this;
//        }
//    }
//
//    static abstract class AbsListViewAdapter<T> extends BaseAdapter {
//
//        protected Context mContext;
//        protected List<T> mDatas;
//        protected LayoutInflater mInflater;
//        protected int mLayoutId;
//
//        public AbsListViewAdapter(Context context, List<T> datas, int LayoutId) {
//            this.mContext = context;
//            mInflater = LayoutInflater.from(context);
//            this.mLayoutId = LayoutId;
//            this.mDatas = datas;
//        }
//
//        @Override
//        public int getCount() {
//
//            return mDatas.size();
//        }
//
//        @Override
//        public T getItem(int position) {
//
//            return mDatas.get(position);
//        }
//
//        @Override
//        public long getItemId(int position) {
//
//            return position;
//        }
//
//        @Override
//        public View getView(int position, View convertView, ViewGroup parent) {
//
//            ListViewHolder holder = ListViewHolder.get(mContext, convertView,
//                    parent, position, mLayoutId);
//
//            convert(holder, getItem(position));
//
//            return holder.getConvertView();
//        }
//
//        public abstract void convert(ListViewHolder holder, T t);
//    }
//
//    static class Enety{
//
//        public Enety(String title, int icon) {
//            this.title = title;
//            this.icon = icon;
//        }
//
//        public String title;
//        public int icon;
//    }
//
//    static class MyAdapter extends AbsListViewAdapter<Enety> {
//
//        public MyAdapter(Context context, List<Enety> datas, int LayoutId) {
//            super(context, datas, LayoutId);
//        }
//
//        @Override
//        public void convert(ListViewHolder holder, Enety enety) {
//            holder.setTextViewVualue(R.id.title, enety.title)
//                    .setImageViewVualue(R.id.image, enety.icon);
//        }
//    }
//}
